#ifndef IMPLEMENTATION_H
#define IMPLEMENTATION_H
#include<iostream>
#include<memory>
class Implementation {
public:
    Implementation(){}
    ~Implementation(){}
public:
    virtual void implementationOperation() = 0;
};
class ConcreteImplementationA:public Implementation{
public:
    ConcreteImplementationA(){}
    ~ConcreteImplementationA(){}
public:
    void implementationOperation()  override{
        // 实现A的操作
        std::cout << "ConcreteImplementationA operation" << std::endl;
    }
};

class ConcreteImplementationB:public Implementation{
public:
    ConcreteImplementationB(){}
    ~ConcreteImplementationB(){}
public:
    void implementationOperation()  override{
        // 实现A的操作
        std::cout << "ConcreteImplementationB operation" << std::endl;
    }
};
#endif // IMPLEMENTATION_H
